package com.cloudpivot.receivales.ding.scenegroup.domain;

import lombok.Data;

import java.util.Map;

/**
 * 互动卡片对象
 */
@Data
public class InteractiveCardDTO {

    /**
     * 互动卡片的消息模板ID
     */
    private String cardTemplateId;
    /**
     *
     * 群ID
     */
    private String openConversationId;
    /**
     *接收人userId列表。(如果是群内的 可以空)
     */
    private String[] receiverUserIdList;
    /**
     *唯一标示卡片的外部编码。
     */
    private String outTrackId;
    /**
     * 用于发送卡片的机器人编码。
     */
    private String robotCode;
    /**
     * 发送的会话类型：
     * 0：单聊
     * 1：群聊
     */
    private Integer conversationType;
    /**
     *可控制卡片回调时的路由Key，用于指定特定的callbackUrl。
     */
    private String callbackRouteKey;
    /**
     *卡片数据
     */
    private CardData cardData;
    /**
     *企业机器人ID。
     */
    private String chatBotId;
    /**
     *用户ID类型
     */
    private Integer userIdType;
    /**
     *消息@人。格式：{"key":"value"}。
     * key：用户ID，根据userIdType设置。
     * value：用户名。 不填写，不@
     */
    private String atOpenIds;
    /**
     *卡片操作
     */
    private CarOptions cardOptions;

    @Data
    public static class CarOptions{
        /**
         * 是否可以转发
         */
        private Boolean supportForward;
    }

    @Data
    public static class CardData{
        /**
         * 卡片模板内容替换参数，普通文本类型
         */
        private Map<String,String> cardParamMap;
        /**
         * 卡片模板内容替换参数，多媒体类型
         */
        private Map<String,String> cardMediaIdParamMap;
    }
}
